package lmh.example.exam1_4;

import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.media.MediaPlayer;
import android.media.VolumeShaper;
import android.widget.Button;

import androidx.annotation.RequiresApi;

public class MainActivity extends Activity {

    // 定义播放声音的MediaPlayer
    private MediaPlayer mPlayer;
    //以下代码只能在API 26即 Android 8.0（Oreo）以上版本运行
    @RequiresApi(api = Build.VERSION_CODES.O)
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 创建MediaPlayer对象
        mPlayer = MediaPlayer.create(this, R.raw.beautiful);
        Button bnBn = findViewById(R.id.play);
        /* 为“播放”按钮绑定事件处理函数 */
        bnBn.setOnClickListener(view -> mPlayer.start());
        Button shaperBn = findViewById(R.id.shaper);
        // 为“应用效果”按钮绑定事件处理函数
        shaperBn.setOnClickListener(view -> {
            VolumeShaper.Configuration config = new VolumeShaper.Configuration.Builder()
                    //  设置插值方式
                    .setInterpolatorType(VolumeShaper.
                            Configuration.INTERPOLATOR_TYPE_LINEAR)
                    // 设置音量曲线
                    .setCurve(new float[]{0f, 0.5f, 1f}, // 时间点
                              new float[]{0f,  1f,  0f}) // 各时间点对应的音量
                    // 设置持续时间
                    .setDuration(1000 * 60)
                    .build();
            VolumeShaper volumeShaper = mPlayer.createVolumeShaper(config);
            volumeShaper.apply(VolumeShaper.Operation.PLAY);
        });
    }
}
